1. Field of the Invention
The present invention relates to data storage and more specifically to data obfuscation.
2. Introduction
Computer software is first written as source code which is readable by a person trained to understand programming languages. Generally that source code is then compiled to object code that contains a list of instructions controlling what a computer does. Unfortunately for commercial software vendors who wish to enforce licensing or Digital Rights Management (DRM) provisions, malicious or mischievous individuals with enough time and resources can reverse engineer critical portions of the object code. One technique to reverse engineer object code is to load the executable into memory and examine the memory contents with a piece of software called a debugger to locate the critical portions of software enforcing the restrictions. Once the proper portions of object code are located and reverse engineered, the software may be modified to perform in a manner not anticipated by the software vendor, potentially bypassing DRM or licensing restrictions, but also potentially causing great harm or injury.
In addition to protecting executable instructions compiled from source code, a content provider may want to protect data from being copied or played without authorization, but still want the content to be accessible where there is authorization. DRM and software protection schemes in general work by means of security through obscurity, security by design, encryption, and other methods. Even a blend of these approaches is often insufficient to keep out a determined “hacker” or “cracker”. Accordingly, what is needed in the art is an improved way to store data in a computer while making the data difficult to access without proper authorization.